%
O0004(SET G54 X Y Z B) 
 
(SET PAL.OP = CUR.OP)
#118=#112
 
(SET FIX.PT = CUR.PT)
#113=#103
 
(IF CUR.PT < 10) 
IF[#103LE10]GOTO40(SKIP +4 TO PAL.OP)
 
(SET PALLET OP 5 THRU 8--SAME AS 1 THRU 4) 
(PAL.OP = PAL.OP + 4)
#118=#118+4(+4 TO PALLET OP, PT > 10)
 
(SET PART 11-20 AS FIXTURE PART 1-10)
(FIX.PT = FIX.PT - 10) 
#113=#113-10 
 
N40
(CALCULATE G54.1 P BASE VARIABLE)
(PBV = 54.1B + [54.1DP * PAL.OP - 54.1DP]) 
#111=#109+[#110*#118-#110] 
 
 
N41
(TRUE IF OP 2 FIXTURE 1 OR 3)
(2OR4 = [PAL.OP EQ 2] OR [CUR.OP EQ 4])
#116=[#118EQ2]OR[#118EQ4]
 
(TRUE IF OP 2 FIXTURE 2 OR 4)
(6OR8=[PAL.OP EQ 6] OR [PAL.OP EQ 8])
#117=[#118EQ6]OR[#118EQ8]
 
(SET PART SPACING FOR OP)
 
(IF PALLET OP = 2,4,6,8 SKIP OP 1 SPACING) 
IF[[#116EQ1]OR[#117EQ1]]GOTO42 
 
(OP 1 AND 3) 
(PT.SP = OP1+) 
#114=#104
GOTO43(SKIP OP 2  SPACING) 
 
N42(OP 2 AND 4)
(PT.SP = OP2+) 
#114=#105
 
N43
(CALCULATE Y POSITION) 
(ADJY = [PT.SP * FIX.PT] + PT.SP)
#115=[#114*#113]-#114
 
(G54 X = PBV + 1)
#5221=#[#111+1]
 
(G54 Y = PBV + 2 - ADJY) 
#5222=#[#111+2]-#115 
 
(G54 Z = PBV + 3)
#5223=#[#111+3]
 
(G54 B = PBV + 4)
#5224=#[#111+4]
 
 
M99
%